#include<iostream>
using namespace std;
template<class T>
class Matrix
{
    private:
        int hang,lie;
        T** num;
    public:
        Matrix(int ha,int li)
        {
            hang=ha;
            lie=li;
            num=new T*[hang];
            for(int i=0;i<hang;++i)
            {
                num[i]=new T[lie];
            }
        }
        void readNum()
        {
            for(int i=0;i<hang;++i)
            {
                for(int j=0;j<lie;++j)
                {
                    cin>>num[i][j];
                }
            }
        }
        Matrix(const Matrix& a)
        {
            hang=a.hang;
            lie=a.lie;
            num=new T*[hang];
            for(int i=0;i<hang;++i)
            {
                num[i]=new T[lie];
            }
            for(int i=0;i<hang;++i)
            {
                for(int j=0;j<lie;++j)
                {
                    num[i][j]=a.num[i][j];
                }
            }
        }
        ~Matrix()
        {
            for(int i=hang-1;i>=0;--i)
            {
                delete[] num[i];
            }
            delete[] num;
        }
        void transport()
        {
            Matrix ans(lie,hang);
            for(int i=0;i<ans.hang;++i)
            {
                for(int j=0;j<ans.lie;++j)
                {
                    ans.num[i][j]=num[j][i];
                }
            }//借ans过渡
            for(int i=hang-1;i>=0;--i)
            {
                delete[] num[i];
            }
            delete[] num;
            hang=ans.hang;
            lie=ans.lie;
            num=new T*[hang];
            for(int i=0;i<hang;++i)
            {
                num[i]=new T[lie];
            }
            for(int i=0;i<hang;++i)
            {
                for(int j=0;j<lie;++j)
                {
                    num[i][j]=ans.num[i][j];
                }
            }
        }
        void MyPrint()
        {
            for(int i=0;i<hang;++i)
            {
                for(int j=0;j<lie;++j)
                {
                    if(j!=0)
                        cout<<" ";
                    cout<<num[i][j];
                }
                cout<<endl;
            }
        }
};
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        char tag;
        int m,n;
        cin>>tag>>m>>n;
        if(tag=='I')
        {
            Matrix<int> ans(m,n);
            ans.readNum();
            ans.transport();
            ans.MyPrint();
        }
        else if(tag=='C')
        {
            Matrix<char> ans(m,n);
            ans.readNum();
            ans.transport();
            ans.MyPrint();
        }
        else
        {
            Matrix<double> ans(m,n);
            ans.readNum();
            ans.transport();
            ans.MyPrint();
        }
    }
}